{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 过拟合 和欠拟合"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.random.seed(1218)\n",
    "x = np.random.uniform(-3,3,size=100)\n",
    "X = x.reshape(-1,1)\n",
    "y = 0.5 * x**2 + x + 2 + np.random.normal(0,1,100) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 使用线性回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5455148598692399"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "\n",
    "lin_reg = LinearRegression()\n",
    "lin_reg.fit(X,y)\n",
    "lin_reg.score(X,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a16b02f28>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_predict = lin_reg.predict(X)\n",
    "plt.scatter(x,y)\n",
    "plt.plot(np.sort(x),y_predict[np.argsort(x)],color='r')x\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2.5948633482802173"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error\n",
    "y_predict = lin_reg.predict(X)\n",
    "mean_squared_error(y,y_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "def PolynomialRegression(degree):\n",
    "    # 会按照管道一步步的走\n",
    "    poly_reg = Pipeline([\n",
    "        (\"poly\", PolynomialFeatures(degree=degree)),\n",
    "        (\"std_scaler\", StandardScaler()),\n",
    "        (\"lin_reg\",LinearRegression())\n",
    "    ])\n",
    "    return poly_reg"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "poly2_reg = PolynomialRegression(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Pipeline(memory=None,\n",
       "     steps=[('poly', PolynomialFeatures(degree=2, include_bias=True, interaction_only=False)), ('std_scaler', StandardScaler(copy=True, with_mean=True, with_std=True)), ('lin_reg', LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False))])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly2_reg.fit(X,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "y2_predict = poly2_reg.predict(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8415262547887441"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mean_squared_error(y,y2_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a16f5f6d8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_predict = lin_reg.predict(X)\n",
    "plt.scatter(x,y)\n",
    "plt.plot(np.sort(x),y2_predict[np.argsort(x)],color='r')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.780620597894125"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly10_reg = PolynomialRegression(10)\n",
    "poly10_reg.fit(X,y)\n",
    "y10_predict = poly10_reg.predict(X)\n",
    "mean_squared_error(y,y10_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a16d58128>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_predict = lin_reg.predict(X)\n",
    "plt.scatter(x,y)\n",
    "plt.plot(np.sort(x),y10_predict[np.argsort(x)],color='r')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.4295137881156912"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly100_reg = PolynomialRegression(100)\n",
    "poly100_reg.fit(X,y)\n",
    "y100_predict = poly100_reg.predict(X)\n",
    "mean_squared_error(y,y100_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a16f4de80>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_predict = lin_reg.predict(X)\n",
    "plt.scatter(x,y)\n",
    "plt.plot(np.sort(x),y100_predict[np.argsort(x)],color='r')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a16f5aba8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "X_plot = np.linspace(-3,3,100).reshape(100,1)\n",
    "y_plot = poly100_reg.predict(X_plot)\n",
    "plt.scatter(x,y)\n",
    "plt.plot(X_plot[:,0],y_plot,color='r')\n",
    "plt.axis([-3,3,-1,10])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10ce60da0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "X_plot1 = np.linspace(-3,3,100).reshape(100,1)\n",
    "y_plot1 = poly10_reg.predict(X_plot)\n",
    "plt.scatter(x,y)\n",
    "plt.plot(X_plot1[:,0],y_plot1,color='r')\n",
    "plt.axis([-3,3,-1,10])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
